
const item=require('./datbase.js')


function printInventory(inputs){
    let obitem=getobitem(inputs);
    addattribute(obitem);
    addprice(obitem);
    let discount_array=getdiscount_array(obitem);
    let all_price=getall_price(obitem);
    let alldis_price=getalldis_price(discount_array);
    let list=getlist(obitem,discount_array,all_price,alldis_price);
    console.log(list);

}

    //转为对象数组，得出商品代码和数目
function getobitem(inputs){
    let obitem=[];
    for(let i=0;i<inputs.length;){
      let num=0;
      let count=0;
      let object=new Object();
      for(let n=i;n<inputs.length;n++){
        if(inputs[n][9]==inputs[i][9]){
          if(inputs[n].length==10){
            num++;
            count++;
          }     
          else {  
            let j=parseInt(inputs[n].substring(11,12));       
            count=count+j;
            num++;       
          }
        }      
      }
      object.barcode=(inputs[i].substring(0,10));
      object.count=count;
      obitem.push(object);
      i+=num;
    }
    return obitem;    
}

    //根据loadAllItems给商品添加名字.单位.单价属性.
function addattribute(obitem){
    let form=item.loadAllItems();
    for(let i of obitem){
        for(let j of form){
            if(i.barcode==j.barcode){
                i.name=j.name;
                i.unit=j.unit;
                i.price=j.price;
            }
        }
    }
    return obitem;
}
    //判断是否有优惠并添加总价和优惠价
function addprice(obitem){
    let promotions=item.loadPromotions();
    for(let i of obitem){
        if(i.count>2){
            if(promotions[0].barcodes.indexOf(i.barcode)){
                i.discount=parseInt(i.count/3);
                i.Actual_count=i.count-parseInt(i.count/3);
                i.total_price=i.price*i.Actual_count;
                i.distotal_price=i.discount*i.price;       
        }
    }
        else{
            i.discount=0;
            i.Actual_count=i.count;
            i.total_price=i.price*i.Actual_count;
            i.distotal_price=i.discount*i.price;
        }
    }
    return obitem;
}
    //把有优惠的放进一个新数组
function getdiscount_array(obitem){
    let discount_array=[];
    for(let i of obitem){
        if(i.discount!=0){
            discount_array.push(i);
        }
    }
    return discount_array;
}
    //计算总价和节省
function getall_price(obitem){
    let all_price=0;
    for(let i of obitem){
        all_price+=i.total_price;
    }
    return all_price;
}
function getalldis_price(discount_array){
    let alldis_price=0;
    for(let i of discount_array){
        alldis_price+=i.distotal_price;
    }
    return alldis_price;
}
    //清单
function getlist(obitem,discount_array,all_price,alldis_price){
    let list='***<没钱赚商店>购物清单***\n' 
    for(let i of obitem){
        list+='名称：'+`${i.name}`+'，数量：'+`${i.count}`+`${i.unit}`+'，单价：'+`${i.price.toFixed(2)}`+'(元)，小计：'+`${i.total_price}`+'.00(元)\n'
    }
    list+='----------------------\n' ;
    list+='挥泪赠送商品：\n';
    for(let i of discount_array){
        list+='名称：'+`${i.name}`+'，数量：'+`${i.discount}`+`${i.unit}`+'\n'
    }
    list+='----------------------\n'
    list+='总计：'+`${all_price.toFixed(2)}`+'(元)\n'
    list+='节省：'+`${alldis_price.toFixed(2)}`+'(元)\n'
    list+='**********************'
    return list;
}

exports.printInventory=printInventory;
exports.getobitem=getobitem;
exports.addattribute=addattribute;
exports.addprice=addprice;
exports.getdiscount_array=getdiscount_array;
exports.getall_price=getall_price;
exports.getalldis_price=getalldis_price;
exports.getlist=getlist;
    // let Debug_Info='***<没钱赚商店>购物清单***\n' +
    // '名称：雪碧，数量：5瓶，单价：3.00(元)，小计：12.00(元)\n' +
    // '名称：荔枝，数量：2斤，单价：15.00(元)，小计：30.00(元)\n' +
    // '名称：方便面，数量：3袋，单价：4.50(元)，小计：9.00(元)\n' +
    // '----------------------\n' +
    // '挥泪赠送商品：\n' +
    // '名称：雪碧，数量：1瓶\n' +
    // '名称：方便面，数量：1袋\n' +
    // '----------------------\n' +
    // '总计：51.00(元)\n' +
    // '节省：7.50(元)\n' +
    // '**********************'


